package com.lihepeng.leecode.solid_aim_offer.tree;

/**
 * 树的深度
 * 输入一棵二叉树，求该树的深度。从根结点到叶结点依次经过的结点（含根、叶结点）形成树的一条路径，最长路径的长度为树的深度，根节点的深度视为 1 。
 *
 * 数据范围：节点的数量满足 0 \le n \le 1000≤n≤100 ，节点上的值满足 0 \le val \le 1000≤val≤100
 * 进阶：空间复杂度 O(1)O(1) ，时间复杂度 O(n)O(n)
 *
 * 假如输入的用例为{1,2,3,4,5,#,6,#,#,7}，那么如下图:
 */
public class Solution55 {
    public int TreeDepth(TreeNode root) {
        if (root ==null) {
            return 0;
        }
        return getTreeDepth(root);
    }
    private int getTreeDepth(TreeNode root){
        if (root ==null) {
            return 0;
        }
        return Math.max(getTreeDepth(root.left),getTreeDepth(root.right))+1;
    }
}
